#ifndef _MENSAJES_H_
#define _MENSAJES_H_



/*
Los sectores se piden: memcpy(mensaje->payload, "|nroSector|", 3);
*/

#define CONNEXION_REFUSED 	-10
#define HANDSHAKE_ERROR 	-11
#define HANDSHAKE_OK		11

#define EXIT_ERROR_MEMORY 	-12
#define	EXIT_ERROR_RECV		-13

#define	SOCKET_ERROR_DESCONEXION	0
#define	SOCKET_ERROR_SOCKET	-1
#define	SOCKET_ERROR_CONEXION	-3
#define	SOCKET_ERROR_INICIALIZAR	-4
#define	SOCKET_OK_SOCKET		1
#define	SOCKET_INVALIDO		-2

#define BOOL_OK				1

#define ARCHIVO_SOCKET "/tmp/.socketunix"

/*************MENSAJES DEL FILE SYSTEM*****************/

#define MSG_GET_BOOT_SECTOR	200
#define MSG_GET_SECTOR		201

/******************************/

typedef struct S_MSG_NIPC
{
    char DescriptorID[16];     		   /* Secuencial de descriptor   */
    unsigned char PayloadDescriptor;  	   /* Identificador del mensaje  */
    unsigned char PayloadLength[2];       /* Cantidad de Bits del array */
    char *Payload;
}stMsgNIPC;


int enviarMensaje(int Socket, stMsgNIPC *mensaje);
int recibirMensaje(int Socket, stMsgNIPC *mensaje);
int recibirInfo(int Socket, unsigned char *Buffer, long CantidadARecibir);
int enviarInfo(int Socket, unsigned char *Buffer, long CantidadAEnviar);

void NumToBin (unsigned char * buffer, int total);
unsigned int BinToNum (unsigned char * buffer);


#endif /* _MENSAJES_H_ */
